<?
class Usuario extends Main
{
	function Usuario()
	{
		$this->Main();
		if(!$this->conexao)
		{
			exit('Sem conexao'.__FILE__.__LINE__);
		}
	}
	
	function obtem($where="", $ordem="nome_usuario", $limit="", $offset=0, $ativo=1, $cod_site="")
	{
		
		$sql = "SELECT cod_usuario, email_usuario, nome_usuario, apelido_usuario FROM ". AW_BD_PREFIX ."usuario WHERE atv_usuario = '$ativo' ";
		if($where != "")
		{
			$sql .= " AND ( $where ) ";
		}
		
		$sql .= " ORDER BY $ordem ";
		
		if($limit != "")
		{
			$sql .= " LIMIT $offset,$limit ";
		}

		// Trata retorno
		$resultq = $this->conexao->Execute($sql);
		if(!$resultq)
		{
			if(AW_DEBUG)
			{
				echo("Erro ao obter usuario: ".__FILE__." : ".__LINE__."<br />".$this->conexao->ErrorMsg());
			}
			return false;
		}
		else
		{
			return $resultq->GetRows();
		}
	}
	
	function atualiza($dados)
	{
		if(!is_array($dados))
		{
			if(AW_DEBUG)
			{
				echo("Argumento deve ser um array: ".__FILE__." : ".__LINE__);
			}
			return false;
		}
		
		// Trata senha
		if(isset($dados['senha_usuario']))
		{
			if($dados['senha_usuario'] != "")
			{
				$sql = "UPDATE ". AW_BD_PREFIX ."usuario SET senha_usuario = password('". $dados['senha_usuario'] ."') WHERE cod_usuario = '".$dados['cod_usuario']."'";
				$resultq = $this->conexao->Execute($sql);
				unset($sql);
			}
			unset($dados['senha_usuario']);
		}

		// Pega o usuario
		$sql = "SELECT * FROM ". AW_BD_PREFIX ."usuario WHERE cod_usuario = '".$dados['cod_usuario']."'";
		$rs = $this->conexao->Execute($sql);
		$usuario = $rs->GetRows();
		unset($sql);

		// pega senha do BD
		$dados['senha_usuario'] = $usuario[0]['senha_usuario'];
		unset($usuario);
		
		// Adodb retorna o sql para update
		$sql = $this->conexao->GetUpdateSQL($rs,$dados,true,false,true);
		$resultq = $this->conexao->Execute($sql);
		unset($sql);
		
		// Trata retorno
		if(!$resultq)
		{
			if(AW_DEBUG)
			{
				echo("Erro ao atualizar usuario: ".__FILE__." : ".__LINE__."<br />".$this->conexao->ErrorMsg());
			}
			return false;
		}
		else
		{
			return true;
		}
	}
	
	function insere()
	{

		$dados = array();
		
		// Pega a materia vazia
		$sql = "SELECT * FROM ". AW_BD_PREFIX ."usuario WHERE cod_usuario = '-1'";
		$rs = $this->conexao->Execute($sql);
		$rs->GetRows();
		unset($sql);
		
		$dados = array('cod_site' => AW_COD_SITE, 'atv_usuario' => 1);

		// Adodb retorna o sql para insert
		$sql = $this->conexao->GetInsertSQL($rs,$dados);
		$resultq = $this->conexao->Execute($sql);
		unset($sql);

		// Trata retorno
		if(!$resultq)
		{
			if(AW_DEBUG)
			{
				echo("Erro ao inserir usuario: ".__FILE__." : ".__LINE__."<br />".$this->conexao->ErrorMsg());
			}
			return false;
		}
		else
		{
			return $this->conexao->Insert_ID();
		}
	}
	
	function checa($email,$senha)
	{
		$sql = "SELECT cod_usuario,nome_usuario,apelido_usuario,email_usuario FROM ". AW_BD_PREFIX ."usuario WHERE 
				email_usuario = '$email' AND 
				atv_usuario = '1' AND
				senha_usuario = password('$senha') ";
		$resultq = $this->conexao->Execute($sql);
		unset($sql);
		
		// Trata retorno
		if(!$resultq)
		{
			if(AW_DEBUG)
			{
				echo("Erro ao checar usuario: ".__FILE__." : ".__LINE__."<br />".$this->conexao->ErrorMsg());
			}
			return false;
		}
		else
		{
			if($resultq->RecordCount() == 1)
			{
				$usuario = $resultq->GetRows();
				return $usuario[0]['cod_usuario'];
			}
			else
			{
				return false;
			}
		}
	}
	
	function sites($cod_usuario=AW_COD_USUARIO,$cod_site="",$ativo=1)
	{
		$sql = "SELECT * FROM ". AW_BD_PREFIX ."usuario_site WHERE ";
		
		if($cod_site != "")
		{
			$sql .= " cod_site = '$cod_site' AND ";
		}
		$sql .= " cod_usuario = '$cod_usuario' AND atv_usuario_site = '$ativo' ";
		
		// Trata retorno
		$resultq = $this->conexao->Execute($sql);
		if(!$resultq)
		{
			if(AW_DEBUG)
			{
				echo("Erro ao obter sites do usuario: ".__FILE__." : ".__LINE__."<br />".$this->conexao->ErrorMsg());
			}
			return false;
		}
		else
		{
			return $resultq->GetRows();
		}
	}
}
?>